// pages/map/map.js
var QQMapWX = require('../../qqmap-wx-jssdk1.2/qqmap-wx-jssdk.min');
var qqmapsdk;
Page({

  /**
   * 页面的初始数据
   */
  data: {
    markers: [{
      latitude: '',
      longitude: '',
      iconPath: '/image/nowaddress.svg'
    }],
    current:0
  },
  //点击取消
  cancel(){
    wx.reLaunch({
      url: '/pages/setaddress/setaddress'
    })
  },
  //点击确定
  sure(){
    let index=this.data.suggestion.findIndex(item=>item.id==this.data.current)
    console.log(index);
    console.log(this.data.suggestion[index]);
    wx.reLaunch({
      url: '/pages/setaddress/setaddress?str='+JSON.stringify(this.data.suggestion[index])+'&&pages=map&&page='+this.data.page+'&&name='+this.data.name+'&&phone='+this.data.phone
    })
  },
  //拖拽地图
  bindregionchange(e) {
    let key = 'markers[0].latitude'
    let keylong = 'markers[0].longitude'
    if (e.detail.centerLocation) {
      this.setData({
        [key]: e.detail.centerLocation.latitude,
        [keylong]: e.detail.centerLocation.longitude
      })
    }
  },
  //选择地址
  choose(e) {
    let key = 'markers[0].latitude'
    let keylong = 'markers[0].longitude'
    this.setData({
      longitude: e.currentTarget.dataset.item.longitude,
      latitude: e.currentTarget.dataset.item.latitude,
      [key]: e.currentTarget.dataset.item.latitude,
      [keylong]: e.currentTarget.dataset.item.longitude,
      current:e.currentTarget.dataset.item.id
    })
  },
  //input事件
  input(e) {
    this.search(e.detail.value)
  },
  //逆解析地址
  reverse(obj) {
    qqmapsdk.reverseGeocoder({
      //位置坐标，默认获取当前位置，非必须参数
      /**
       * 
       //Object格式
        location: {
          latitude: 39.984060,
          longitude: 116.307520
        },
      */
      /**
       *
       //String格式
        location: '39.984060,116.307520',
      */
      location: obj, //获取表单传入的位置坐标,不填默认当前位置,示例为string格式
      get_poi: 1, //是否返回周边POI列表：1.返回；0不返回(默认),非必须参数
      success: (res) => { //成功后的回调
        console.log(res);
        var result = res.result;
        var mks = [];

        //  当get_poi为1时，检索当前位置或者location周边poi数据并在地图显示，可根据需求是否使用

        for (var i = 0; i < result.pois.length; i++) {
          if(result.pois[i]._distance<1000){
            result.pois[i]._distance=result.pois[i]._distance<100?'100m以内':`${result.pois[i]._distance}m`
          }else{
            result.pois[i]._distance=`${(result.pois[i]._distance/1000).toFixed(2)}km`
          }
          mks.push({ // 获取返回结果，放到mks数组中
            title: result.pois[i].title,
            id: result.pois[i].id,
            latitude: result.pois[i].location.lat,
            longitude: result.pois[i].location.lng,
            distance:result.pois[i]._distance,
            addr:result.pois[i].address,
            ad_info:result.pois[i].ad_info,
          })
        }
        this.setData({
          suggestion:mks,
          current:mks[0].id
        })
        console.log(this.data.suggestion);
      },
      fail: function (error) {
        console.error(error);
      },
      complete: function (res) {}
    })
  },
  //输入地址 搜索
  search(key) {
    qqmapsdk.getSuggestion({
      //获取输入框值并设置keyword参数
      keyword: key, //用户输入的关键词，可设置固定值,如keyword:'KFC'
      //region:'北京', //设置城市名，限制关键词所示的地域范围，非必填参数
      policy: 1,
      location:`${this.data.latitude},${this.data.longitude}`,
      success: (res) => { //搜索成功后的回调
        console.log(res);
        var sug = [];
        for (var i = 0; i < res.data.length; i++) {
          if(res.data[i]._distance<1000){
            res.data[i]._distance=res.data[i]._distance<100?'100m以内':`${res.data[i]._distance}m`
          }else{
            res.data[i]._distance=`${(res.data[i]._distance/1000).toFixed(2)}km`
          }
          sug.push({ // 获取返回结果，放到sug数组中
            title: res.data[i].title,
            id: res.data[i].id,
            addr: res.data[i].address,
            city: res.data[i].city,
            district: res.data[i].district,
            latitude: res.data[i].location.lat,
            longitude: res.data[i].location.lng,
            distance: res.data[i]._distance
          });
        }
        this.setData({ //设置suggestion属性，将关键词搜索结果以列表形式展示
          suggestion: sug
        });
      },
      fail: (error) => {
        console.error(error);
      },
      complete: (res) => {
        console.log(res);
      }
    });
  },
  //初始化
  init() {
    qqmapsdk = new QQMapWX({
      key: '3ETBZ-4E56U-GY6VO-BIO5W-BBPZ6-HGFUH'
    });
    //获取当前位置
    wx.getLocation({
      type: 'gcj02',
      altitude: true,
      //定位成功，更新定位结果      
      success: (res) => {
        var latitude = res.latitude
        var longitude = res.longitude
        var speed = res.speed
        var accuracy = res.accuracy
        let key = 'markers[0].latitude'
        let keylong = 'markers[0].longitude'
        this.reverse({
          latitude: res.latitude,
          longitude: res.longitude
        })
        this.setData({ //赋值
          longitude: longitude,
          latitude: latitude,
          speed: speed,
          accuracy: accuracy,
          [key]: res.latitude,
          [keylong]: res.longitude
        })
      }, //定位失败回调      
      fail: () => {
        wx.hideLoading();
        console.log("getLocationFail")
      },
      complete: function () {
        //隐藏定位中信息进度       
        wx.hideLoading()
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({
      name:options.name,
      phone:options.phone,
      page:options.page
    })
    this.init()

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // qqmapsdk.search({
    //   keyword: '龙泉驿',
    //   success: function (res) {
    //     console.log(res);
    //   },
    //   fail: function (res) {
    //     console.log(res);
    //   },
    //   complete: function (res) {
    //     console.log(res);
    //   }
    // });
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})